利用 pm2 做管理(因為 docker 坑很深 加上來的話會寫不完)
Express 是會執行一個 Process 常駐
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
  res.json({title: 'Hello World!'})
})
app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})
最簡單的一個 hello world 的程式
如果在 local 端跑起來可以用瀏覽器打開 http://localhost:3000
就會看到 Hello World!
module.exports = {
  apps: [
    {
      name: 'express-demo',
      script: 'app.js',
      watch: '.',
      env: {
        NODE_ENV: 'development',
      },
    },
  ],
};
stages:
  - deployExpress
image: gitlab/dind
services:
  - docker:dind
deployExpress:
  stage: deployExpress
  tags:
    - self-runner
  only:
      - deployDev
  script:
    - yarn install
    - cp "${DEV_ENV}" .env
    - pm2 delete ecosystem.config.js
    - pm2 start ecosystem.config.js
這是最簡單的範例
這樣直接部署比較簡單
單一程式基本上就可以跑起來了
但是如果是有很多個 Process 需要管理
可能就是另一個管理的篇章
這次都只會講到最基礎的部署邏輯
在 gitlab 上的sidebar 看 CI\CD 就可以看到工作狀態
如果是 pass的話
利用瀏覽器打開 http://${ip}:3000
就可以看到 Hello World! 的文字
這時候就可以補上其他 route
可以達成最基礎的 API 部署實作